package com.shark.uh.utils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;

public class Generator {
    private static final Random RANDOM = new Random();

    public static String generateCaptcha() {
        // 生成两个有序分割点（范围0-5）
        int[] splits = RANDOM.ints(2, 0, 6).sorted().toArray();
        int numSize = splits[0];
        int upperSize = splits[1] - splits[0];
        int lowerSize = 6 - splits[1];

        List<Character> chars = new ArrayList<>();

        // 生成数字字符（0-9）
        RANDOM.ints(numSize, 48, 58)
                .forEach(c -> chars.add((char) c));

        // 生成大写字母（A-Z）
        RANDOM.ints(upperSize, 65, 91)
                .forEach(c -> chars.add((char) c));

        // 生成小写字母（a-z）
        RANDOM.ints(lowerSize, 97, 123)
                .forEach(c -> chars.add((char) c));

        // 打乱顺序并拼接字符串
        Collections.shuffle(chars);
        return chars.stream()
                .map(String::valueOf)
                .collect(Collectors.joining());
    }
}
